//#include <iostream>
//#include <vector>
//#include <string>
//
//using namespace std;
//
//int main()
//{
//    int size = 0;
//    cin >> size;
//    string comd;
//    cin >> comd;
//    vector<int> broad({ 1,2,3,4 });
//    int index = 0;
//
//    if (size <= 4)
//    {
//        for (auto key : comd)
//        {
//            if (key == 'U')
//            {
//                --index;
//            }
//            else
//            {
//                ++index;
//            }
//            index = (index + size) % size;
//        }
//    }
//    else
//    {
//        for (auto key : comd)
//        {
//            if (key == 'U')
//            {
//                --index;
//            }
//            else
//            {
//                ++index;
//            }
//
//            if (index < 0)
//            {
//                index++;
//                for (int i = 0; i < 4; i++)
//                {
//                    broad[i]--;
//                }
//
//                if (broad[0] < 1)
//                {
//                    index = 3;
//                    broad[3] = size;
//                    broad[2] = size - 1;
//                    broad[1] = size - 2;
//                    broad[0] = size - 3;
//                }
//            }
//            else if (index > 3)
//            {   
//                index--;
//                for (int i = 0; i < 4; i++)
//                {
//                    broad[i]++;
//                }
//
//                if (broad[3] > size)
//                {
//                    index = 0;
//                    broad[3] = 4;
//                    broad[2] = 3;
//                    broad[1] = 2;
//                    broad[0] = 1;
//                }
//            }
//        }
//    }
//
//    for (int i = 0; i < 4; i++)
//    {
//        cout << broad[i] << " ";
//    }
//    cout << endl;
//    cout << broad[index] << endl;
//
//    return 0;
//}


//#include <string>
//#include <vector>
//#include <iostream>
//
//using namespace std;
//
//int main()
//{
//    int size = 0;
//    cin >> size;
//    string comd;
//    cin >> comd;
//
//    int index = 0;
//    vector<int> broad;
//    for (int i = 0; i < size; i++)
//    {
//        broad.push_back(i + 1);
//    }
//
//    if (size <= 4)
//    {
//        for (auto key : comd)
//        {
//            if (key == 'U')
//            {
//                index--;
//            }
//            else
//            {
//                index++;
//            }
//
//            index = (index + size) % size;
//        }
//    }
//
//    for (int i = 0; i < 4 && i < size; i++)
//    {
//        cout << broad[i] << " ";
//    }
//    cout << endl;
//    cout << broad[index] << endl;
//    return 0;
//}



#include <iostream>
#include <stack>
using namespace std;

void getVal(stack<int>& st, int n)
{
    for (int i = 0; i < n; i++)
    {
        int tmp = 0;
        cin >> tmp;
        st.push(tmp);
    }
}

void getTop(stack<int>& dest, stack<int>& src)
{
    int top = src.top();
    src.pop();
    dest.push(top);
}

int main()
{
    int size = 0;
    cin >> size;

    while (size--)
    {
        int n = 0, k = 0;
        cin >> n >> k;
        stack<int> left;
        stack<int> right;
        getVal(left, n);
        getVal(right, n);

        stack<int> ans;
        while (k--)
        {
            while (!right.empty())
            {
                getTop(ans, right);
                getTop(ans, left);
            }

            if (k != 0)
            {
                for (int i = 0; i < n; i++)
                {
                    int top = ans.top();
                    ans.pop();
                    left.push(top);
                }
                for (int i = 0; i < n; i++)
                {
                    int top = ans.top();
                    ans.pop();
                    right.push(top);
                }
            }
        }

        while (!ans.empty())
        {
            cout << ans.top() << " ";
            ans.pop();
        }
        cout << endl;
    }
    return 0;
}
